package org.lanqiao.tjut.converter;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

import org.lanqiao.tjut.myUtils.MyUtils;
import org.springframework.core.convert.converter.Converter;

public class DateTypeConverter implements Converter<String, Date> {

	// 可以转换的格式,用数组的形式进行存储
	// 注意顺序，保证最大匹配优先
	// 否则按照年月日时分进行匹配,匹配成功直接转换为0时0分
	private static final SimpleDateFormat[] ACCEPT_DATE_FORMATS = { 
			new SimpleDateFormat("MM/dd/yyyy HH:mm:ss"),
			new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"), new SimpleDateFormat("yyyy-MM-dd HH:mm"),
			new SimpleDateFormat("yyyy-MM-dd") };

	@Override
	public Date convert(String source) {
		MyUtils.logger.debug("converter source：" + source);
		// 进行转换
		for (SimpleDateFormat simpleDateFormat : ACCEPT_DATE_FORMATS) {
			try {
				Date date = simpleDateFormat.parse(source);
				return date;
			} catch (ParseException e) {
				// 错误日志
				// e.printStackTrace();
				// 继续尝试其他格式的转换
				continue;
			}
		}
		// 都没有转换成功，则返回null
		return null;
	}

}
